// 上面这个代码处理过度动画（默认加上不用管）
document.addEventListener('DOMContentLoaded', () => {
  setTimeout(() => {
    document.body.classList.add('sidenav-pinned')
    document.body.classList.add('ready')
  }, 200)
})

// 创建bootstrap弹窗
let toastBox = document.querySelector('#myToast')
const toast = new bootstrap.Toast(toastBox, {
  animate: true,
  autohide: true,
  delay: 3000
})
   const show=msg=>{
       // alert('用户名必须在2~30位之间')
     document.querySelector('.toast-body').innerHTML=msg
     //让toast 显示出来
     toast.show()
      }

//配置基地址
axios.defaults.baseURL='http://ajax-api.itheima.net'

// 请求拦截器 只要发送任何请求 都会被这个拦截器 先拦住
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么 config 配置对象
  // console.log(config)
  // 除了 登录和注册两个接口 不需要 身份认证 其他的接口都需要身份认证
  // 发送 ajax 请求之前 只有 本地存储里面 有 token 表示用户登录了 其他的请求 需要携带 Authorization· 请求头
  const token = localStorage.getItem('CMS85')
  if (token) {
    config.headers.Authorization = token
  }
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});


// 添加响应拦截器
/*
  服务器响应数据 成功 走第一个回调函数
  成功 可以将数据 脱壳

  服务器响应数据 失败 走第二个回调函数
  token 过期 在想要获取数据 同样的会报 401 模拟 token 过期 找到 本地存储 修改 token的值 401的错误
  判断 响应状态码的值是不是401
  绝决方案:
  1.需要跳转登录页面让用户重新登录
  2.清除本地存储里面的数据

*/
axios.interceptors.response.use(function (response) {
  // console.log(response.data) 
  // response 其实就是 axios().then() 里面的回调函数 
  // 对响应数据做点什么
  return response;
}, function (error) {
  // console.log(error);
  if(error.response.status===401){
    location.href='./login.html'
    localStorage.clear()
  }

  // 对响应错误做点什么
  return Promise.reject(error);
})
